﻿#pragma once
#include <boost/serialization/singleton.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/smart_ptr.hpp>
#include <boost/filesystem.hpp>
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <iostream>
#include <cstdlib>

class SystemHelper
	: public boost::serialization::singleton<SystemHelper>
{
public:
	SystemHelper();
	virtual ~SystemHelper();

public:
	// 获取当前机器ip
	std::string GetLocalIp();
	// 获取当前机器名
	std::string GetMachineName();
	// 连接可用性测试:linux有问题
	bool CanConnected(std::string ip, int port, int timeout_second = 5);
	// IP端口是否可连接
	bool IsPortOpen(const std::string& ip, const int& port);
	// 获取设备图片目录
	std::string GetDeviceImageDir(std::string device);
	// 获取设备图片路径
	std::string GetDeviceImagePath(std::string device, std::string uuid);
	// 获取设备录像目录
	std::string GetDeviceRecordDir(std::string device);
	// 获取设备录像路径
	std::string GetDeviceRecordPath(std::string device, std::string uuid);
	// 获取文件存储目录
	std::string GetFileSavePath(std::string fileName);
	// 重新启动系统
	void Reboot();
};

